<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>ProctorTicket.Trac.TracDBConn</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="ProctorTicket-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="http://code.google.com/p/proctorticket">ProctorTicket</a></th>
          </tr></table></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        <a href="ProctorTicket-module.html">Package&nbsp;ProctorTicket</a> ::
        <a href="ProctorTicket.Trac-module.html">Module&nbsp;Trac</a> ::
        Class&nbsp;TracDBConn
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="ProctorTicket.Trac.TracDBConn-class.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class TracDBConn</h1><span class="codelink"><a href="ProctorTicket.Trac-pysrc.html#TracDBConn">source&nbsp;code</a></span><br /><br />
<pre class="base-tree">
object --+
         |
        <strong class="uidshort">TracDBConn</strong>
</pre>

<hr />
TracDBConn(&lt;string&gt;, &lt;preLoadDict: dictionary()&gt;, 
  &lt;update: bool(True)&gt;): Class to provide abstractions for the Trac 
  database connection. Upon instantiation, accepts the path to Trac 
  installation. By specifying a value for preLoadDict, every time a ticket 
  is added default options will be loaded from the dictionary, meaning, for
  example, you would only need to specify the summary and description and 
  could have a default value for priority, etc. The 'update' keyword, which
  is True by default, tells ProctorTicket that, when adding a ticket, if it
  already exists, to update the changed fields instead of raising an 
  error.<br /><br />

<!-- ==================== INSTANCE METHODS ==================== -->
<a name="section-InstanceMethods"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Instance Methods</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-InstanceMethods"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="ProctorTicket.Trac.TracDBConn-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">path</span>,
        <span class="summary-sig-arg">preLoadDict</span>=<span class="summary-sig-default"><code class="variable-group">{</code><code class="variable-group">}</code></span>,
        <span class="summary-sig-arg">update</span>=<span class="summary-sig-default">True</span>)</span><br />
      x.__init__(...) initializes x; see x.__class__.__doc__ for 
      signature</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="ProctorTicket.Trac-pysrc.html#TracDBConn.__init__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="checkTicket"></a><span class="summary-sig-name">checkTicket</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">value</span>,
        <span class="summary-sig-arg">field</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">summary</code><code class="variable-quote">'</code></span>)</span><br />
      TracDBConn.checkTicket(&lt;string&gt;, &lt;field: 
      &quot;summary&quot;&gt;): Returns True or False, depending on whether
      a ticket already exists in the database with a value for 'field' 
      equal to the first argument.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="ProctorTicket.Trac-pysrc.html#TracDBConn.checkTicket">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="getTicketID"></a><span class="summary-sig-name">getTicketID</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">value</span>,
        <span class="summary-sig-arg">field</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">summary</code><code class="variable-quote">'</code></span>)</span><br />
      TracDBConn.getTicketID(&lt;string&gt;, &lt;field: 
      string(&quot;summary&quot;)&gt;): Returns the 'id' field for the 
      first record with a 'field' value equal to the first positional 
      argument.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="ProctorTicket.Trac-pysrc.html#TracDBConn.getTicketID">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="ProctorTicket.Trac.TracDBConn-class.html#addTicket" class="summary-sig-name">addTicket</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">ticketDict</span>,
        <span class="summary-sig-arg">preLoad</span>=<span class="summary-sig-default">True</span>)</span><br />
      TracDBConn.addTicket(&lt;dictionary&gt;, &lt;preLoad: 
      boolean(True)&gt;): Takes the dictionary given, makes sure all keys 
      are valid, and inserts the specified ticket into the database.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="ProctorTicket.Trac-pysrc.html#TracDBConn.addTicket">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="ProctorTicket.Trac.TracDBConn-class.html#updateTicket" class="summary-sig-name">updateTicket</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">ticketID</span>,
        <span class="summary-sig-arg">changeDict</span>,
        <span class="summary-sig-arg">author</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>)</span><br />
      TracDBConn.updateTicket(&lt;integer&gt;, &lt;dictionary&gt;, 
      &lt;author: string()&gt;): This accepts a ticket ID and a dictionary 
      of changed values, and updates the database with new values for that 
      ID.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="ProctorTicket.Trac-pysrc.html#TracDBConn.updateTicket">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="ProctorTicket.Trac.TracDBConn-class.html#checkAndAddOrUpdate" class="summary-sig-name">checkAndAddOrUpdate</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">ticketDict</span>,
        <span class="summary-sig-arg">field</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">summary</code><code class="variable-quote">'</code></span>,
        <span class="summary-sig-arg">preLoad</span>=<span class="summary-sig-default">True</span>)</span><br />
      TracDBConn.checkAndAddOrUpdate(&lt;dictionary&gt;, &lt;field: 
      string(&quot;summary&quot;)&gt;, &lt;preLoad: True&gt;) Makes sure 
      that a ticket is not already in the database and then adds it and 
      returns the new record's 'id' field.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="ProctorTicket.Trac-pysrc.html#TracDBConn.checkAndAddOrUpdate">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__delattr__</code>,
      <code>__getattribute__</code>,
      <code>__hash__</code>,
      <code>__new__</code>,
      <code>__reduce__</code>,
      <code>__reduce_ex__</code>,
      <code>__repr__</code>,
      <code>__setattr__</code>,
      <code>__str__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== PROPERTIES ==================== -->
<a name="section-Properties"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Properties</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-Properties"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__class__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== METHOD DETAILS ==================== -->
<a name="section-MethodDetails"></a>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Method Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-MethodDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
</table>
<a name="__init__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">path</span>,
        <span class="sig-arg">preLoadDict</span>=<span class="sig-default"><code class="variable-group">{</code><code class="variable-group">}</code></span>,
        <span class="sig-arg">update</span>=<span class="sig-default">True</span>)</span>
    <br /><em class="fname">(Constructor)</em>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="ProctorTicket.Trac-pysrc.html#TracDBConn.__init__">source&nbsp;code</a></span>&nbsp;
    </td>
  </table>
  
  x.__init__(...) initializes x; see x.__class__.__doc__ for 
  signature
  <dl class="fields">
    <dt>Overrides:
      object.__init__
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="addTicket"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">addTicket</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">ticketDict</span>,
        <span class="sig-arg">preLoad</span>=<span class="sig-default">True</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="ProctorTicket.Trac-pysrc.html#TracDBConn.addTicket">source&nbsp;code</a></span>&nbsp;
    </td>
  </table>
  
  TracDBConn.addTicket(&lt;dictionary&gt;, &lt;preLoad: 
  boolean(True)&gt;): Takes the dictionary given, makes sure all keys are 
  valid, and inserts the specified ticket into the database. Returns the id
  of the ticket created. Also loads data for each ticket from the 
  'preLoadDict' attribute, unless preLoad=False is specified as an optional
  argument.
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="updateTicket"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">updateTicket</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">ticketID</span>,
        <span class="sig-arg">changeDict</span>,
        <span class="sig-arg">author</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="ProctorTicket.Trac-pysrc.html#TracDBConn.updateTicket">source&nbsp;code</a></span>&nbsp;
    </td>
  </table>
  
  TracDBConn.updateTicket(&lt;integer&gt;, &lt;dictionary&gt;, 
  &lt;author: string()&gt;): This accepts a ticket ID and a dictionary of 
  changed values, and updates the database with new values for that ID. It 
  also adds records to ticket_change, so that changes are logged. The 
  dictionary argument does not have to include time, but if it is it will 
  override the default action of getting the current time from 
  time.localtime(). The 'author' keyword specifies who should be the author
  of the change; by default this field takes the value of the reporter, or 
  else the owner, of the ticket.
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="checkAndAddOrUpdate"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">checkAndAddOrUpdate</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">ticketDict</span>,
        <span class="sig-arg">field</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">summary</code><code class="variable-quote">'</code></span>,
        <span class="sig-arg">preLoad</span>=<span class="sig-default">True</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="ProctorTicket.Trac-pysrc.html#TracDBConn.checkAndAddOrUpdate">source&nbsp;code</a></span>&nbsp;
    </td>
  </table>
  
  TracDBConn.checkAndAddOrUpdate(&lt;dictionary&gt;, &lt;field: 
  string(&quot;summary&quot;)&gt;, &lt;preLoad: True&gt;) Makes sure that a
  ticket is not already in the database and then adds it and returns the 
  new record's 'id' field. If it is in the database already then the 
  program tries to see whether the description field has changed. If it has
  then it performs an update.
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="ProctorTicket-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="http://code.google.com/p/proctorticket">ProctorTicket</a></th>
          </tr></table></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0beta1 on Sat Jan 19 19:26:41 2008
    </td>
    <td align="right" class="footer">
      <a href="http://epydoc.sourceforge.net">http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie()
  // -->
</script>
  
</body>
</html>
